/**
 * @ClassName LC55
 * @Author ykx
 * @Date 2024/3/27 8:57
 * @Version 1.0
 */
public class LC55 {
    public static void main(String[] args) {
        LC55 lc55 = new LC55();
        int[] nums = new int[]{3, 2, 0, 1, 4};
        System.out.println(lc55.canJump(nums));
    }

    public boolean canJump(int[] nums) {
        // 设置最大能跳到的位置
        int maxIndex = 0;
        for (int i = 0; i < nums.length; i++) {
            // 设置到当前位置时能跳到的最大位置
            maxIndex = Math.max(maxIndex, i + nums[i]);
            if (nums[i] == 0) {
                if (maxIndex > i || i == nums.length - 1) {
                    // 说明可以被跳过去，或者已经到终点了
                    continue;
                } else {
                    // 说明跳不下去了
                    return false;
                }
            }
        }
        return true;
    }
}
